iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
Modern Web

自己開發一個~?系列 第 4 篇

JAVA程式碼~HashSet

  • 分享至 

  • xImage
  •  

解釋JAVA程式碼~
/images/emoticon/emoticon04.gif

真的是有夠硬的喔~
可以真的跑出甚麼的~
才不會看不下去
/images/emoticon/emoticon04.gif

程式碼

 package collection;

import java.util.HashSet;

public class Set01 {

	public static void main(String[] args) {
		//java本身定義的數字,字串型態-->已內訂比較模式(值)
				HashSet<String> hs = new HashSet<>();
				System.out.println(hs.add("JAVA"));
				hs.add("C++");
				hs.add(null);
				hs.add("100");
				hs.add("Android");
				System.out.println(hs);
				System.out.println(hs.remove("100"));
				System.out.println(hs);
				hs.add("Android");
				hs.add("JAVA");
				System.out.println(hs);
				System.out.println("--------------");
				
				HashSet<Integer> hs2 = new HashSet<>();
				hs2.add(100);
				hs2.add(56);
				hs2.add(70);
				hs2.add(100);
				hs2.add(70);
				hs2.add(60);
				System.out.println(hs2);
				System.out.println("--------------");
				
				HashSet<Pen> hs3 = new HashSet<>();
				hs3.add(new Pen());
				hs3.add(new Pen());
				hs3.add(new Pen());
				hs3.add(new Pen());
				System.out.println(hs3);
				
			}
		}
		//--------------------------
		class Pen{
			@Override
			public String toString() {
				return "Pen Object";
			}
			//不要同時修改hashCode() / equals(Object obj)
			@Override
			public int hashCode() {
				return 10;//不取得記憶體位址,而直接回傳10
			}
			@Override
			public boolean equals(Object obj) {
				return true;//不比對記憶體,而直接回傳true-->代表二者相同
			}
		}


顯示
https://ithelp.ithome.com.tw/upload/images/20231018/20119035xJuA9RL1Hc.png


解釋程式碼
這段Java程式碼主要示範了如何使用 HashSet 這個集合類別,以及一些相關的概念。以下是程式碼的解釋:

  1. 首先,建立了一個 HashSet 物件 hs,用來存放字串(String)型態的元素。

  2. 使用 add 方法將幾個元素加入到 hs 中,這些元素包括 "JAVA"、"C++"、null、"100" 和 "Android"。

  3. 使用 System.out.println(hs) 輸出 hs 的內容,HashSet 不保證元素的順序,所以輸出的順序可能不同。

  4. 使用 remove 方法移除一個元素 "100",並再次輸出 hs。

  5. 接著再次加入 "Android" 和 "JAVA" 兩個元素到 hs,輸出最終的 hs。

  6. 建立了另一個 HashSet 物件 hs2,這次用來存放整數(Integer)型態的元素,並加入了幾個整數。

  7. 輸出 hs2 的內容。

  8. 最後,建立了一個 HashSet 物件 hs3,用來存放自定義的 Pen 物件。這部分示範了自定義類別如何在 HashSet 中使用。

  9. Pen 類別有覆寫(override)了 toString、hashCode 和 equals 方法。這些方法的覆寫使得 HashSet 可以正確處理 Pen 物件的比較和哈希碼計算。

總結來說,這段程式碼示範了如何使用 HashSet 存儲不同型態的元素,以及如何自定義類別以適當方式使用 HashSet 集合。HashSet 用來存儲不重複的元素,並且不保證元素的順序。

/images/emoticon/emoticon08.gif

/images/emoticon/emoticon08.gif

謝謝收看/images/emoticon/emoticon41.gif


上一篇
又是解釋程式碼
下一篇
介紹程式碼到一半
系列文
自己開發一個~? 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言